package com.wwu.common.web;

import com.wwu.common.constant.ResultConst;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * Web通用返回对象实体
 * @author 一蓑烟雨
 * @date 2021-10-26 16:03
 * @version 1.0.0
 **/
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value="ResultObj:Web通用返回对象实体", description="Web通用返回对象实体")
public class ResultObj {
    @ApiModelProperty(value = "返回值编码")
    private long code;

    @ApiModelProperty(value = "返回值名称")
    private String msg;

    @ApiModelProperty(value = "返回对象")
    private Object data;

    /**
     * 成功返回结果
     * @author 一蓑烟雨
     * @date 2021/10/26 0026 下午 16:39
     */
    public static ResultObj success(){
        return  new ResultObj(ResultConst.SUCCESS_CODE, ResultConst.SUCCESS_MSG,null);
    }

    /**
     * 成功返回结果
     * @author 一蓑烟雨
     * @date 2021/10/26 0026 下午 16:39
     */
    public static ResultObj success(String msg){
        return  new ResultObj(ResultConst.SUCCESS_CODE,msg,null);
    }

    /**
     * 成功返回结果
     * @author 一蓑烟雨
     * @date 2021/10/26 0026 下午 16:39
     */
    public static ResultObj success(Object data){
        return  new ResultObj(ResultConst.SUCCESS_CODE, ResultConst.SUCCESS_MSG,data);
    }

    /**
     * 成功返回结果
     * @author 一蓑烟雨
     * @date 2021/10/26 0026 下午 16:39
     */
    public static ResultObj success(String msg, Object data){
        return  new ResultObj(ResultConst.SUCCESS_CODE,msg,data);
    }


    /**
     * 失败返回结果
     * @author 一蓑烟雨
     * @date 2021/10/26 0026 下午 16:39
     */
    public static ResultObj error(){
        return  new ResultObj(ResultConst.ERROR_CODE, ResultConst.ERROR_MSG,null);
    }


    /**
     * 失败返回结果
     * @author 一蓑烟雨
     * @date 2021/10/26 0026 下午 16:39
     */
    public static ResultObj error(String msg){
        return  new ResultObj(ResultConst.ERROR_CODE,msg,null);
    }

    /**
     * 失败返回结果
     * @author 一蓑烟雨
     * @date 2021/10/26 0026 下午 16:39
     */
    public static ResultObj error(Object data){
        return  new ResultObj(ResultConst.ERROR_CODE, ResultConst.ERROR_MSG,null);
    }

    /**
     * 失败返回结果
     * @author 一蓑烟雨
     * @date 2021/10/26 0026 下午 16:39
     */
    public static ResultObj error(String msg, Object data){
        return  new ResultObj(ResultConst.ERROR_CODE,msg,data);
    }


    /**
     * 异常返回结果
     * @author 一蓑烟雨
     * @date 2021/10/26 0026 下午 16:39
     */
    public static ResultObj except(){
        return  new ResultObj(ResultConst.EXCEPTION_CODE, ResultConst.EXCEPTION_MSG,null);
    }

    /**
     * 异常返回结果
     * @author 一蓑烟雨
     * @date 2021/10/26 0026 下午 16:39
     */
    public static ResultObj except(String msg){
        return  new ResultObj(ResultConst.EXCEPTION_CODE,msg,null);
    }

    /**
     * 异常返回结果
     * @author 一蓑烟雨
     * @date 2021/10/26 0026 下午 16:39
     */
    public static ResultObj except(Object data){
        return  new ResultObj(ResultConst.EXCEPTION_CODE, ResultConst.EXCEPTION_MSG,null);
    }

    /**
     * 异常返回结果
     * @author 一蓑烟雨
     * @date 2021/10/26 0026 下午 16:39
     */
    public static ResultObj except(String msg, Object data){
        return  new ResultObj(ResultConst.EXCEPTION_CODE,msg,data);
    }
}
